package cn.itcast.user.controller;

import cn.itcast.user.client.OrderClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/user")
public class UserController {
    //springcloud服务远程调用有两种实现方式：
    //1. restTemplate+ribbon
    //2. feign

    @Autowired
    RestTemplate restTemplate;//restTemplate+ribbon远程调用其他微服务，同时支持客户端负载均衡

    @Autowired
    private OrderClient orderClient;//feign方式远程调用订单微服务，同时支持客户端负载均衡

    /**
     * 在用户微服务中远程调用订单微服务查询订单信息
     * @param orderId
     * @return
     */
    @RequestMapping("/orderInfo/{orderId}")
    public String getOrderInfo(@PathVariable("orderId") String orderId){
        return orderClient.findById(orderId);//feign方式远程调用订单微服务，同时支持客户端负载均衡
        //return restTemplate.getForObject("http://order/order/"+orderId, String.class);//restTemplate+ribbon远程调用其他微服务，同时支持客户端负载均衡
    }
}
